1. Field of the Invention
The present invention relates to the field of artifact version control and more particularly to navigating deltas in a compare view.
2. Description of the Related Art
Version control relates to the management of different versions of artifacts produced through repetitive editing by one or more end editors. Often referred to in the context of source code development, software model development and configuration management, version control involves the management of one or more documents when the documents are edited in succession, parallel or both by one or more editors. Put plainly, version control addresses one of two likely contingencies. In a first contingency, an editor applies edits to a document in succession and requires a view to changes in the document from an ancestor version to a contemporary version. In the other contingency, one or more editors concurrently apply different edits to the same document and the edits must be merged into a unified document.
Merging is a common operation when working with versioned artifacts in a version control system. Wherever two or more editors apply edits to the same version of a file in parallel, a merge is required to harmonize the edits of the parallel artifacts. Merging unstructured textual artifacts can be a relatively simple operation because within an unstructured textual artifact, there is no relationship from one line to the next. By comparison, merging a structured artifact such as source code or markup can be trying, as the skilled artisan will attest.
Notably, when editing an artifact, a simple line to line change can affect the integrity of structures or objects specified within the artifact. In this regard, the more structural the file content, the worse the problem because relationships between structures within an artifact must be maintained during a merge operation in order to protect the integrity of the artifact. Exacerbating matters, each element in an artifact can have multiple properties, each of which can contain or reference one or more other elements in the artifact. As other relationships can exist only in source code, the structure of an artifact can become exceedingly complex—so much so that attempting to edit the artifact within a mere text editor can virtually guarantee the corruption of the artifact as has been demonstrated by sufficient empirical evidence.
Thus, more sophisticated visual merge tools have become the preferred mode of performing a merge operation. The use of a visual merge tool in a version control system, however, is not without its own set of challenges. In this regard, each individual change can appear within the visual merge tool as a single artifact difference referred to in the art as a “delta”. Moreover, each individual change to an element in an artifact by a contributor reflected by a delta can be a candidate for conflict in view of a possible change to the same element by another contributor in another version of the artifact.
Visualizing deltas among different modified versions of an ancestor artifact, referred to in the art as a “contributor artifact”, can be challenging where a multiplicity of deltas can be identified for any given contributor artifact. To facilitate the visualization of deltas in an artifact, conventional visual compare tools provide for the manual selection of different contextual views for the deltas. In this regard, whereas a hierarchical view of deltas can be appropriate in some circumstances, visualizing changes in a model, for example, can require the use of a diagrammatic view. Likewise, visualizing property changes can require a property view. Finally, visualizing textual changes can require a text view.
Conventional compare tools typically permit the selection of any one of several contextual views for viewing an artifact in a particular context. For instance, one or more tab controls can be provided for a contextual view of an artifact such that the selection of any one of the tab controls can result in the re-rendering of the artifact utilizing a different contextual view associated with the selected tab control. Notwithstanding, repeatedly switching contextual views for an entire artifact can be problematic, distracting and tedious when navigating different deltas in a contributor artifact. Yet, switching contextual views for an artifact is an all or none proposition within conventional compare tools.